package com.project.service;

import com.github.pagehelper.PageInfo;
import com.project.bean.ProjectBean;

import java.util.List;

public interface IProjectService {
    public static final int PAGESIZE = 4;
    /**
     * 添加项目
     * @param project 项目对象（包含项目名称、客户名称、项目资金、交付日期）
     */
    public void add(ProjectBean project);

    /**
     * 根据条件模糊动态分页查询。全默认的情况下为查询全部
     * 同时查询项目的参与人数（联表分组查询）
     * @param pageNo 页码
     * @param name 项目名称
     * @param status 项目状态
     * @param sort 排序规则
     * @return 符合条件的项目集合
     */
    public PageInfo<ProjectBean> findByItem(int pageNo, String name,
                                            String status, String sort);

    /**
     * 根据项目id查询项目，同时查询该项目参与的进度信息，
     * 进度信息中需要查询员工姓名
     * @param id 项目id
     * @return 项目对象和参与员工姓名 //参与日期和完成日期(中间表)
     */
    public ProjectBean findById(Integer id);


    /**
     * 查询所有未完成的项目，同时统计每个项目的参与人数
     * @return 返回符合条件的项目集合
     */
    public List<ProjectBean> findByStatus();
}
